package com.itheima.edu.info.manager.service;
import com.itheima.edu.info.manager.dao.StudentDao;
import com.itheima.edu.info.manager.domain.Student;
/*
这里的方法都是给controller类使用的
如果某些业务涉及到到对数据仓库的数据进行访问的时候,纳闷就需要业务员中操作库管对象

 */
public class StudentService {
   private StudentDao studentDao = new StudentDao();
   //添加学生
    public boolean addStudent(Student stu) {
        //创建一个库管对象

        //将stu塞入库管对象的add里面,并且返回值
       return studentDao.addStudent(stu);

    }
    //查看是否存在
    public boolean isExists(String id) {
        //让仓库吧所有数据拿过来
        Student[] stuArray = studentDao.findAllStudent();
        //定义一个标记,flag为false,表示输入的id不存在
        boolean flag = false;
        //遍历数组stuArray,拿到每一个学生对象,去每一个学生对象的id和传进来的id进行比较.
        for (int i = 0; i < stuArray.length; i++) {
            Student stu = stuArray[i];
            //判断当前学生对象是否为null值和录入的id是否一致
            if(stu != null && stu.getId().equals(id)){
                flag = true;
                        break;

            }
        }
        return  flag;
    }
    //查询数组
    public Student[] findAllStudent() {
        //1. 调用库管的查询所有学生信息的方法,拿到所有学生对象
        Student[] allStudent = studentDao.findAllStudent();  //allStudent = {null,null,null,null,null}
        /*
            2. 对库管查到的学生数据进行判断
                2.1 如果库管给的学生数组里装的全是null,我们就直接返回一个null给客服
                2.2 如果库管给的学生数组里有一个不是null,就说明系统中有学生信息,我们就把整个数组返回给客服
         */
        //先定义一个标记: boolean flag = false,默认值表示先假设数组里全是null
        boolean flag = false;
        //遍历数组,只要有一个索引位置不是null就打印输出 ,把flag的值赋值为ture
        for (int i = 0; i < allStudent.length; i++) {
            Student student = allStudent[i];
            if(student != null){
                flag = true;
                break;
            }
        }
        if(flag){
            return allStudent;
        }else{
            return  null;
        }

    }
    //删除学生
    public void deleteStudent(String delId) {
        //调用Dao里面的删除方法
        studentDao.deleteStudent(delId);
    }
    //修改学生
    public void updateStudent(String updateId, Student newStu) {
        studentDao.updataStudent(updateId,newStu);
    }
}
